# -*- coding: utf-8 -*-
# @Time    : 2021/3/31 10:46
# @Author  : lilu
# @Email   : 1906196327@qq.com
# @File    : python实现Linux中tree指令的功能.py
# @Software: PyCharm

# import  os
# for i in os.listdir(r'D:\python项目'):
#     print(i)
#     for j in os.listdir(fr'D:\python项目\{i}'):
#         print(j.rjust(15,"-"))
        # if os.path.isdir(j):
        #     for k in os.listdir(fr'D:\python项目\{i}\{j}'):
        #         print(k.rjust(50,"-"))
# #
# #                 散列表--稀疏数组（空间复杂度换时间复杂度）--表元--分两块引用--搜索为例（key通过哈希计算--后几位寻找偏移位置--搜索的key与散列表的key是否相同--不同则产生冲突--往前找--v索引值--
# #

# #
# def sum(*num):
#     sums = 0
#     for i in num:
#         sums += int(i)
#     print(f"总数之和为：{sums}")
#
#
# def sums(**num):
#     sums = 0
#     for i in num.values():
#         sums += i
#     print(f"总数之和为：{sums}")
# # num = input('请输入几个需要相加的数字')
# sum(num)
# print(type(num),num)
#

# 导入os模块
import os
# 添加需要查询的路径
path = (r'D:\git')
# 定义树的函数(path代表查询的路径，level代表缩进的数值）
def printdirTree(path, level):
    # 找到该路径下的文件和文件夹通过循环进行操作判断
    for p in os.listdir(path):

        # 如果找到的是文件使用路径拼接os.path.join方法进行操作
        #该方法会从最后一个字符串开始向前寻找，直到找到以’ / ’ 开头的字符串，并将他们拼接起来；
        #如果没有以‘ / ‘开头的字符串，就把所有的字符串拼接起来（最前方不会出现’ / ’）；
        #如果遇到‘./ ’ ，会把’./ ‘前面的字符一起拼接起来。
        #’ / ’ 的优先级高于’./ ’ 。
        if os.path.isfile(os.path.join(path, p)):
            print('-----' * level + p)
            #print('     ' * level + "|")

        # 如果找到的是文件夹操作方法与上面一样
        if os.path.isdir(os.path.join(path, p)):
            print('-----' * level + p)
            print('     ' * level + '|')
            printdirTree(os.path.join(path, p), level + 1)

printdirTree(path, 0)



